/**
 * \file CComboResultFrm.h
 * \author Corentin Le Bail
 * \date 2009-2012
 * \brief Fichier de déclaration de la class CComboResultFrm
 */
//-----------------------------------------------------------------------------------
#ifndef __CCOMBORESULTFRM_H__
#define __CCOMBORESULTFRM_H__
//-----------------------------------------------------------------------------------
#include <QDialog>
#include <QMap>
#include "ui_CComboResultFrm.h"
//-----------------------------------------------------------------------------------
/**
 * \class CComboResultFrm CComboResultFrm.h "CComboResultFrm.h"
 * \brief Classe de la fenêtre des résultat de combo.
 */
class CComboResultFrm : public QDialog, private Ui::ComboResultFrm
{
	Q_OBJECT
	public:
		/**
		  * \fn CComboResultFrm(QString tableName, QString champ, QWidget *parent=0, int indexChampRet=0, QString where="")
		  * \brief Constructeur
		  * \param[in] tableName Nom de la table
		  * \param[in] champ Nom du champ
		  * \param[in] parent Référence vers un objet parent
		  * \param[in] indexChampRet Index du champ qui doit être retourné par \ref getResult
		  * \param[in] where Condition SQL sans le WHERE
		  */
		CComboResultFrm(QString tableName, QString champ, QWidget *parent=0, int indexChampRet=0, QString where="");
		/**
		 * \fn QString getResult(void)
		 * \return Le résultat sélectionné
		 */
		QString getResult(void) { return _result; }
		/**
		 * \fn QStringList& getResults(void) const
		 * \return La ligne du résultat sélectionné
		 */
		QMap<QString, QString> getResults(void) const { return results; }
	private:
		QString _table;
		QString _champ;
		QString _champDescription;
		QStringList listChamp;
		QStringList header;
		QString _result;
		QString fontTemplate;
		QString findText;
		int _indexChampRet;
		QString _where;
		QMenu *popupMenu;
		QAction *actActionExport;
		QMap<QString, QString> results;
		
		void loadChamps(void);
		void loadDatas(void);
		void keyPressEvent(QKeyEvent * event);
		void makeMenu(void);
		void makeResults(int row);
	private slots:
		void on_table_ascendingChange(Qt::SortOrder ascending); 
		void on_table_columnChange(int col);
		void on_table_valid(int row, int col);
		void on_table_cellDoubleClicked(int row, int col);
		void on_table_customContextMenuRequested(const QPoint & pos);
		void onActionExport_triggered(void);
};
//-----------------------------------------------------------------------------------
#endif //__CCOMBORESULTFRM_H__
//-----------------------------------------------------------------------------------
